home *** CD-ROM | disk | FTP | other *** search
/ EnigmA Amiga Run 1996 June / EnigmA AMIGA RUN 08 (1996)(G.R. Edizioni)(IT)[!][issue 1996-06][EARSAN CD VII].iso / earcd / comm2 / statty25.lha / statty / logspotxport / logspotxport.rexx < prev   
OS/2 REXX Batch file  |  1996-04-29  |  2KB  |  98 lines

  1. /*
  2. ** $VER: logspotxport.rexx 0.2 (29.4.96) Rolf Rotvel
  3. **
  4. ** Uses rexxtricks.library
  5. */
  6.  
  7. log         = 'logs:spot.log.max'       /* Spot logfile */
  8. areas       = 'mail:max/spot.areas'     /* Spot areafile */
  9.  
  10. /*
  11. ** End cfg.
  12. */
  13. call addlib('rexxsupport.library', 0, -30, 0)
  14. call addlib('rexxtricks.library', 0, -30, 0)
  15.  
  16. packer = arg(1)
  17. if packer = '' then exit 10
  18. wds = words(packer)
  19.  
  20. fromfile = dequote(word(packer, wds))
  21. if ~exists(fromfile) then exit 10
  22.  
  23. tofile = dequote(word(packer, wds - 1))
  24.  
  25. crlf = '0d'x
  26. nl = '0a'x
  27.  
  28. sz = word(statef(fromfile), 2)
  29. call open('pkt', fromfile, 'r')
  30. do l = 1 to (sz % 65535) + 1 
  31.     line.l = readch('pkt', 65535)
  32. end
  33. call close('pkt')
  34. line.0 = l - 1
  35.  
  36. num = 1
  37. do l = 1 to line.0
  38.     do forever
  39.         parse var line.l start 'AREA:' areaname (crlf) line.l
  40.         if line.l = '' then leave
  41.         
  42.         chk = lsearch(areaname, area.name)
  43.         if chk = -1 then do
  44.             area.name.num = areaname
  45.             area.msgs.num = 1
  46.             area.name.0 = num
  47.             num = num + 1       
  48.         end
  49.         else area.msgs.chk = area.msgs.chk + 1
  50.     end
  51. end
  52. area.name.0 = num - 1
  53.  
  54. if area.name.0 > 0 then do
  55.     if ~readfile(areas, arealine) then exit 10
  56.  
  57.     l = 1
  58.     logline.l  = getlogline('|', 'Export startet')
  59.  
  60.     do a = 1 to area.name.0
  61.         if area.msgs.a = 1 then msg = 'message'
  62.         else msg = 'messages'
  63.  
  64.         chk = lsearch('*"'||area.name.a||'"*', arealine,,, 'p')
  65.         if chk ~= -1 then parse var arealine.chk '"' . '"' '"' area.name.a '"' 
  66.  
  67.         l = l + 1
  68.         logline.l = getlogline('!', "Area '"||area.name.a||"' got "||area.msgs.a||" "||msg)
  69.     end
  70.  
  71.     l = l + 1
  72.     logline.l = getlogline('|', 'Export ended'||nl)
  73.     logline.0 = l
  74.  
  75.     if exists(log) then call writefile(log, logline, 'a')
  76.     else call writefile(log, logline)
  77. end
  78.  
  79. address command packer
  80. exit
  81.  
  82.  
  83. DEQUOTE: procedure
  84. str = arg(1)
  85. parse var str '"' unq '"'
  86. if unq = '' then return str
  87. return unq
  88.  
  89.  
  90. GETLOGLINE: procedure
  91. parse arg pre, msg
  92. pre = pre||' '
  93.  
  94. parse value date() with dd mmm yyyy .
  95. date = dd||'-'||mmm||'-'||right(yyyy, 2)||' '||time()||'  '
  96.  
  97. return pre||date||msg
  98.